package main

import (
	"encoding/json"
	"fmt"
	"io/ioutil"
	"net/http"

	"github.com/gen2brain/goiv" // 导入 goiv 库
)

// ImageResponse 定义从 API 返回的数据结构
type ImageResponse struct {
	Code int    `json:"code"`
	Msg  string `json:"msg"`
	URL  string `json:"url"`
}

func main() {
	// 第一步：发送请求获取图片链接
	apiURL := "https://api.52vmy.cn/api/img/tu/girl"
	resp, err := http.Get(apiURL)
	if err != nil {
		fmt.Println("Error fetching image URL:", err)
		return
	}
	defer resp.Body.Close()

	// 第二步：读取响应体
	body, err := ioutil.ReadAll(resp.Body)
	if err != nil {
		fmt.Println("Error reading response body:", err)
		return
	}

	// 第三步：解析 JSON 响应
	var imageResponse ImageResponse
	err = json.Unmarshal(body, &imageResponse)
	if err != nil {
		fmt.Println("Error unmarshaling response data:", err)
		return
	}

	// 检查 API 返回的状态码
	if imageResponse.Code != 200 {
		fmt.Println("Failed to fetch image URL:", imageResponse.Msg)
		return
	}

	// 提取图片链接
	imageURL := imageResponse.URL
	fmt.Println("图片链接：", imageURL)

	// 第四步：使用 goiv 查看图片
	// 直接通过 URL 加载图片
	goiv.View(imageURL)
}
